package org.zbclan.bf2.rcon.common.shared;

import java.util.HashMap;
import java.util.Map;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * TODO 归纳各种属性的有效值
 * 
 * @author Renfeng
 * 
 */
public class ObjectTemplate implements IsSerializable {

	private Map<String, Bf2Property> properties = new HashMap<String, Bf2Property>();

	public Map<String, Bf2Property> getProperties() {
		return properties;
	}

	public void addProperty(Bf2Property p) {
		properties.put(p.getName(), p);
	}

	// /**
	// * the first parameter of create and activeSafe, which are always present.
	// *
	// * available values are ObjectSpawner, SpawnPoint, ControlPoint
	// */
	// private String type;
	//
	// /**
	// * the second parameter of create and activeSafe, which are always
	// present.
	// *
	// * template name, e.g. CPNAME_DO_16_oldcity_ART1_0
	// */
	// private String name;
	//
	// private String modifiedByUser;
	//
	// /**
	// * always 1
	// */
	// private String isNotSaveable = "1";
	//
	// /**
	// * always 0
	// */
	// private String hasMobilePhysics = "0";
	//
	// /**
	// * the parameter following setObjectTemplate 1. e.g. ARS_D30
	// */
	// private String setObjectTemplate1;
	//
	// /**
	// * the parameter following setObjectTemplate 2. e.g. ARS_D30
	// */
	// private String setObjectTemplate2;
	//
	// /**
	// * e.g. 15, 20, 25, 260, 360
	// */
	// private String minSpawnDelay;
	//
	// /**
	// * e.g. 30, 35, 50, 360
	// */
	// private String maxSpawnDelay;
	//
	// /**
	// * optional, always 1
	// */
	// private String teamOnVehicle;
	//
	// /**
	// * optional, always 0.1
	// */
	// private String treeCollisionDiameter;
	//
	// /**
	// * optional, always 0/1.25/0
	// */
	// private String setSpawnPositionOffset;
	//
	// /**
	// * arbitrary
	// */
	// private String setControlPointId;
	//
	// /**
	// * available values are 1 and 2
	// */
	// private String setGroup;
	//
	// /**
	// * optional, always 1
	// */
	// private String setOnlyForHuman;
	//
	// /**
	// * optional, always ControlPointInfo
	// */
	// private String setNetworkableInfo;
	//
	// /**
	// * optional, always 1
	// */
	// private String hasCollisionPhysics;
	//
	// /**
	// * optional, always Mesh
	// */
	// private String physicsType;
	//
	// /**
	// * optional, always flagpole
	// */
	// private String addTemplate;
	//
	// /**
	// * arbitrary
	// */
	// private String setControlPointName;
	//
	// /**
	// * ranged from 3 to 20, float allowed
	// */
	// private String radius;
	//
	// /**
	// * available values are 1 and 2
	// */
	// private String team;
	//
	// /**
	// * arbitrary
	// */
	// private String controlPointId;
	//
	// /**
	// * optional, always 1
	// */
	// private String unableToChangeTeam;
	//
	// /**
	// * 34, 35, 50
	// */
	// private String areaValueTeam1;
	//
	// /**
	// * 34, 35, 50
	// */
	// private String areaValueTeam2;
	//
	// /**
	// * ranged from 0 to 40
	// */
	// private String timeToGetControl;
	//
	// /**
	// * ranged from 0 to 40
	// */
	// private String timeToLoseControl;
	//
	// /**
	// * optional, always 2
	// */
	// private String maxNrOfObjectSpawned;
	//
	// /**
	// * optional, always 1
	// */
	// private String setAllowSpawnCloseToVehicle;
	//
	// /**
	// * optional, always 0
	// */
	// private String loseControlWhenEnemyClose;
	//
	// /**
	// * optional, always 1
	// */
	// private String setAIEnterOnSpawn;
	//
	// /**
	// * optional, always 1
	// */
	// private String holdObject;
	//
	// /**
	// * optional, always 360
	// */
	// private String TimeToLive;
	//
	// /**
	// * optional, always 360
	// */
	// private String Distance;
	//
	// /**
	// * optional, always 1
	// */
	// private String isHemisphere;
	//
	// /**
	// * supplyGroupNeeded 1
	// */
	// private String supplyGroupNeeded1;
	//
	// /**
	// * supplyGroupNeeded 2
	// */
	// private String supplyGroupNeeded2;
	//
	// /**
	// * optional, always 1
	// */
	// private String supplyGroupId;
	//
	// /**
	// * optional
	// */
	// private String hoistMinMax;
	//
	// private String spawnDelayAtStart;
	//
	// private String setSpawnPreventionDelay;
	//
	// private String radiusOffset;
	//
	// private String hoistFlag;
	//
	// private String hasGreyCapturingState;
	//
	// private String setOnlyForAI;
	//
	// private String minimapNameOffset;
}
